Many types of input devices are presently available for performing operations in a computing system, such as buttons or keys, mice, trackballs, joysticks, touch sensor panels, touch screens and the like. Touch screens, in particular, are becoming increasingly popular because of their ease and versatility of operation as well as their declining price. Touch screens can include a touch sensor panel, which can be a clear panel with a touch-sensitive surface, and a display device such as a liquid crystal display (LCD) that can be positioned partially or fully behind the panel so that the touch-sensitive surface can cover at least a portion of the viewable area of the display device. Touch screens can allow a user to perform various functions by touching the touch sensor panel using a finger, stylus or other object at a location dictated by a user interface (UI) being displayed by the display device. In general, touch screens can recognize a touch event and the position of the touch event on the touch sensor panel, and the computing system can then interpret the touch event in accordance with the display appearing at the time of the touch event, and thereafter can perform one or more actions based on the touch event.
Touch screens provide a user interface experience through which particular classes of applications, such as drawing applications for example, have flourished. Such drawing applications typically allow users to draw freehand sketches, usually based on input received from a stylus. Since it is difficult for a user to draw perfect geometric shapes (e.g., lines, circles, squares, etc.) using freehand motion, drawing applications may incorporate various features to enable the generation of perfect geometric shapes based on user input. With one feature, the drawing application can utilize shape recognition on a user's freehand sketch to determine which shape the user intended to draw, and replace the freehand sketch with a perfect rendering of the determined shape. With another feature, the drawing application can enable the user to select the type of shape the user intends to draw, and generate the shape for the user. However, inaccuracy of shape recognition and the additional steps required to select a shape produce a negative impact on the user interface experience associated with drawing shapes.